package com.cms.recursoshumanos.activity.ocio;

import com.example.frontendrecursoshumanos.R;
import com.cms.recursoshumanos.activity.main.MainRecursosHumanosActivity;
import com.cms.recursoshumanos.activity.ocio.reservacion.SetReservacionActivity;
import com.cms.recursoshumanos.cache.ListaOcioCache;
import com.cms.recursoshumanos.cache.UserInfoCache;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.handler.ListaOcioActivityHandler;
import com.cms.recursoshumanos.object.Ocio;
import com.cms.recursoshumanos.object.Usuario;
import com.cms.recursoshumanos.utilities.Tool;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.ProgressDialog;
import android.content.Intent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class DetailOcioActivity extends MainRecursosHumanosActivity 
{
	private Ocio elOcio;
	private Usuario elUsuario;
	protected static SetReservacionAsync setReservacionAsyncTask;
	private ProgressDialog dialog;
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detail_ocio);
		elUsuario = UserInfoCache.getInstance().getUsuario();
		Bundle bundle = getIntent().getExtras();
		int id_ocio = Integer.parseInt(bundle.getString("id_ocio"));
		elOcio = ListaOcioCache.getInstance().getListaOcio().getOcioById(id_ocio);
		
		setComponents();
	}
	@Override
	protected void onResume() 
	{
		super.onResume();
		if (elUsuario == null)
		{
			elUsuario = UserInfoCache.getInstance().getUsuario();
		}
	}
	
	public void showSetReservacion(View v)
    {
		findSetReservacion();
	}
	protected void findSetReservacion()
	{
		if (ListaOcioCache.getInstance().getListaOcio().cantElementListaOcio() == 0)
		{
			setReservacionAsyncTask = new SetReservacionAsync();
			setReservacionAsyncTask.execute();
		}
		else
		{
			goSetReservacion();
		}
		
	}
	public void goSetReservacion()
	{
		Intent intent = new Intent(DetailOcioActivity.this, SetReservacionActivity.class);
		
		Bundle bundle = new Bundle();
		bundle.putString("id_ocio", ""+ elOcio.getOcioId());
		intent.putExtras(bundle);
		
		startActivity(intent);
	}
	private void setComponents()
	{
		LinearLayout layout_info_general = (LinearLayout) findViewById(R.id.llInformacionGeneral);
		RelativeLayout layout_ocio_portait = (RelativeLayout) findViewById(R.id.rlOcioPortrait);
		
		TextView nombre_ocio_portait = (TextView) layout_ocio_portait.findViewById(R.id.tvPortaitNombreOcio);
		
		TextView rif_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueRifOcio);
		TextView horario_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueHorarioOcio);
		TextView fecha_inic_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueFechaInicOcio);
		TextView telefono_1_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueTelefono1Ocio);
		TextView telefono_2_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueTelefono2Ocio);
		TextView email_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueEmailOcio);
		TextView descripcion_ocio_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueDescripcionOcio);
		
		//*--------------Seteo de Portait------------------------------------
		nombre_ocio_portait.setText(elOcio.getNombreEstablecimientoOcio());
		
		//*--------------Seteo de Detalle------------------------------------
		rif_ocio_second_row.setText(elOcio.getRifOcio());
		horario_ocio_second_row.setText(elOcio.getHorarioInic()+" - "+
										elOcio.getHorarioFin());
		fecha_inic_ocio_second_row.setText(Tool.getInstance().parseDateToString(elOcio.getFecha_inic(), 2));
		telefono_1_ocio_second_row.setText(elOcio.getNroTlfOcio1());
		email_ocio_second_row.setText(elOcio.getEmailOcio());
		
		
		LinearLayout llTelefono2Ocio = (LinearLayout) findViewById(R.id.trTelefono2Ocio);
		LinearLayout llDescripcionOcio = (LinearLayout) findViewById(R.id.trDescripcionOcio);
		
		if (elOcio.getNroTlfOcio2() != null)
		{
			telefono_2_ocio_second_row.setText(elOcio.getNroTlfOcio2());
		}
		else
		{
			llTelefono2Ocio.setVisibility(View.GONE);
		}
		if (elOcio.getDescripcionOcio() != null)
		{
			descripcion_ocio_second_row.setText(elOcio.getDescripcionOcio());
		}
		else
		{
			llDescripcionOcio.setVisibility(View.GONE);
		}
		
		
		
	}
	
	private class SetReservacionAsync extends AsyncTask<String, Void, String>
	{
		
		private Usuario elUsuario;
		
		public SetReservacionAsync()
		{
			
		}
		
		@SuppressWarnings("deprecation")
		@Override
		protected void onPreExecute()
		{
			showDialog(0);
			dialog = ProgressDialog.show(DetailOcioActivity.this, "Espere","Cargando...",true );
		}
	
		@Override
		protected String doInBackground(String... arg0) 
		{
			ListaOcioActivityHandler handler = new ListaOcioActivityHandler();
			String result = handler.getListadoOcio(this.elUsuario.getNombre_Usuario(), 
													this.elUsuario.getPassword());
			return result;
		}
		
		@Override
		public void onPostExecute(String  result)
		{
			
			String str_result = result;
			
			if (str_result.equals(Constant.CODE_OK))
			{ 
				goSetReservacion();
			}
			else 
			{
				Tool.getInstance().showMessage( str_result);
			}
			dialog.cancel();
			this.cancel(true);
			
		}
		
	}
	
}
